home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 701-725 / 705 / mfr / manual < prev    next >
Text File  |  1995-03-18  |  41KB  |  1,179 lines

  1. ========================================================================
  2. MagicFileRequester V2.0 Documentation                        05-Jul-1992
  3. ========================================================================
  4.  
  5.                   (C) Copyright 1992 by Stefan Stuntz
  6.  
  7.  
  8.   For informations about license and warranty see the file 'License'.
  9.  
  10.  
  11.  
  12.  
  13. ========================================================================
  14.                                 Roadmap
  15. ========================================================================
  16.  
  17.  
  18.                         1.     Introduction
  19.                         1.1.   Motivation
  20.                         1.2.   Features
  21.                         1.3.   Basics
  22.                         1.4.   System Requirements
  23.  
  24.                         2.     Installation
  25.                         2.1.   From Workbench
  26.                         2.2.   From CLI
  27.                         2.3.   Removing MFR
  28.  
  29.                         3.     Using MFR
  30.                         3.1.   Window Arrangement
  31.                         3.2.   Mouse Usage
  32.                         3.3.   Keyboard Usage
  33.  
  34.                         3.4.   Menus
  35.                         3.4.1. Project Menu
  36.                         3.4.2. Edit Menu
  37.                         3.4.3. DOS Menu
  38.                         3.4.4. Settings Menu
  39.  
  40.                         4.     Specials
  41.                         4.1.   Tooltypes
  42.                         4.2.   CLI Interface
  43.  
  44.                         5.     Goodies
  45.                         5.1.   UnArp
  46.                         5.2.   TagScreens
  47.                         5.3.   Find
  48.                         5.4.   TaskList
  49.  
  50.                         6.     Discussion
  51.                         6.1.   Known Bugs
  52.                         6.2.   Compatibilty
  53.                         6.3.   Future Features
  54.                         6.4.   Acknowledgements
  55.                         6.5.   How to reach the author
  56.  
  57.  
  58.  
  59.  
  60. ========================================================================
  61.                             1. Introduction
  62. ========================================================================
  63.  
  64.  
  65. 1.1. Motivation
  66. ---------------
  67.  
  68. A  file  requester  is  probably  the most used program inside an Amiga.
  69. Unfortunately,  all  currently  available requesters lack some important
  70. features, such as
  71.  
  72. - Keyboard support.
  73.   Since  I  operate my computer mainly from an arm-chair with the keyboard
  74.   on my knees, my mouse is far away.  I really need keyboard support.
  75.  
  76. - Font support.
  77.   I  don't  see  a  reason  to force the user to a non proportional system
  78.   default font or - even worse - to topaz/8 in a file requester.
  79.  
  80. - Resolution support.
  81.   The  Amiga  has  many  different resolutions with different pixel aspect
  82.   ratios.   What  do  I  want  with  a courier/13 font on a low resolution
  83.   320x200 screen?
  84.  
  85. - Speed.
  86.   This one's very important. Just look at 2.0 ASL and you know what I mean
  87.  
  88. These were the main reasons for me to write my own file requester.
  89. MFR is the result and I hope, you will like it as much as I do.
  90.  
  91.  
  92.  
  93. 1.2. Features
  94. -------------
  95.  
  96. - MFR  is  completely controllable via keyboard, so you will never have to
  97.   touch  your mouse when selecting files (of course you can, if you really
  98.   want to).
  99.  
  100. - MFR will use any font you want in its display.  Proportional  fonts like
  101.   helvetica look really marvellous.
  102.  
  103. - MFR  has  the  ability to quickly search your hard disk for any file, so
  104.   you needn't remember each file's directory.
  105.  
  106. - MFR offers a powerful directory caching mechanism.
  107.  
  108. - MFR can display pictures, play sounds, view archives, etc.  with the aid
  109.   of some external programs.
  110.  
  111. - MFR looks very nice, especially on high resolution screens.
  112.  
  113. - MFR has a sizing gadget.
  114.  
  115. - MFR takes advantage of new Kick 2.0 features like file notification.
  116.  
  117. - MFR can be customized through a wide range of tooltypes and menu items.
  118.  
  119. - MFR is fast.
  120.  
  121. - MFR is simply magic :-)
  122.  
  123.  
  124.  
  125. 1.3. Basics
  126. -----------
  127.  
  128. MFR  is  not  distributed like other file requesters.  You do not get an
  129. additional  library  for  your  LIBS:   drawer  and you may not call MFR
  130. directly  from  within  your  own applications.  All you get is a single
  131. program  that  replaces  some  library vectors at installation time.  So
  132. every  program  that  uses one of the supported file requesters will use
  133. MFR instead.
  134.  
  135. MFR  is especially designed for the new Kick 2.0 colors and resolutions.
  136. It will look best on a high resolution display with a pixel aspect ratio
  137. of  nearly  1:1  (e.g.  Hires + Interlace).  Although MFR can be used on
  138. low resolution screens too, the 'feeling' won't be there.
  139.  
  140. MFR  is a commodity.  You can control it like other commodities with the
  141. Exchange program from your Workbench Disk.
  142.  
  143.  
  144.  
  145. 1.4. System Requirements
  146. ------------------------
  147.  
  148. As  you  probably  noticed,  MFR  requires at least Kickstart 2.04 (also
  149. known  as V37.175) to work properly.  If you are still using Version 1.3
  150. of the operating system, it's time to update now.  You won't regret it.
  151.  
  152. Particularly, the following libraries are needed:
  153.  
  154. Library          Min.Version  Place
  155.  
  156. intuition.library    37       ROM
  157. graphics.library     37       ROM
  158. gadtools.library     37       ROM
  159. utility.library      37       ROM
  160. workbench.library    37       ROM
  161. icon.library         37       Libs:
  162. commodities.library  37       Libs:
  163. asl.library          37       Libs:
  164. iffparse.library     37       Libs:
  165. diskfont.library     36       Libs:
  166. req.library           1       Libs:
  167.  
  168. All  these  libraries  are  part  of  the  OS  2.04 distribution, except
  169. req.library, which can be found in the distribution archive of MFR.
  170.  
  171.  
  172.  
  173.  
  174. ========================================================================
  175.                             2. Installation
  176. ========================================================================
  177.  
  178.  
  179. 2.1. From Workbench
  180. -------------------
  181.  
  182. Couldn't be easier.  A simple double klick on MFR's icon will install it
  183. in  memory.   From  now  on,  every  ASL  and REQ file requester will be
  184. replaced  with  a  MFR.   Of course you can (and I really hope you will)
  185. move  MFR  into  "SYS:WBStartup/", so it will be launched every time you
  186. boot.
  187.  
  188.  
  189.  
  190. 2.2. From CLI
  191. -------------
  192.  
  193. Since  there  seem  to  be  quite  many people out there, who do not use
  194. workbench,  MFR can also be started from a CLI environment.  The command
  195.  
  196. mfr install
  197.  
  198. will  do  this  job.   MFR automatically detaches so there is no need to
  199. 'run' it.
  200.  
  201.  
  202.  
  203. 2.3. Removing MFR
  204. -----------------
  205.  
  206. If  you  really  want to remove MFR from your system, you can do this by
  207. double  clicking  its icon a second time,  by calling "mfr install" from
  208. CLI  again  or  with the Commodities Exchange program.  A requester will
  209. pop up informing you that MFR has been removed.
  210.  
  211. MFR will refuse to quit when there are some other programs still hanging
  212. around  with open or just with allocated file requesters.  In this case,
  213. MFR  will  inform you how many times it's locked.  You will have to exit
  214. all these locking programs, before you can remove MFR from your system.
  215.  
  216.  
  217.  
  218.  
  219. ========================================================================
  220.                               3. Using MFR
  221. ========================================================================
  222.  
  223.  
  224. 3.1. Window Arrangement
  225. -----------------------
  226.  
  227. After  installing  MFR,  you  should try pressing <Control><LeftAlt><M>.
  228. This  key  combination  (of course adjustable) will pop up a MFR to play
  229. with, so let's start playing...
  230.  
  231. MFR  offers  a window with a big list view for the directory on the left
  232. side  and  a  smaller one for devices and volumes on the right side.  At
  233. the  bottom,  you  will  find  the  drawer and file gadgets as well as a
  234. pattern gadget.  'Okay' and 'Cancel' buttons are located where you would
  235. expect  them.  You should be familiar with this outfit since it's almost
  236. like the req.library requester.
  237.  
  238. Some  words  about  the  directory  list  now.  On a standard workbench,
  239. directories  will  appear white and files will appear black.  Right of a
  240. file  entry,  MFR  shows its size, creation date and time and the file's
  241. flags.   The  amount  of  information shown depends on the size of MFR's
  242. window  and  on the width of the font.  Try sizing the window to see how
  243. it works.
  244.  
  245. The  device  list  contains an alphabetically sorted list of all devices
  246. (df0:,  df1:,  dh0:, ram:, ...), all volumes (Work:, Ram Disk:, ...) and
  247. all  assigned  directories available in your system.  Usually, you won't
  248. need  all  of  these  entries  while  working  with MFR, so MFR offers a
  249. possibility  to  prevent  certain entries from being displayed.  More on
  250. that later.
  251.  
  252. The  widths  of  directory  and  device list are adjustable.  Just click
  253. between  both  lists  (right  of  the directory scroll bar) and drag the
  254. appearing  bar  around.   If  you  size the device list big enough, some
  255. device information will appear.
  256.  
  257. MFR  allows customizing its complete outfit (Fonts, Scrollbars, Gadgets,
  258. Background,  etc.)  according  to your personal taste.  Refer to section
  259. 3.4.4.  for details.
  260.  
  261.  
  262.  
  263. 3.2. Mouse Usage
  264. ----------------
  265.  
  266. Using  MFR  with a mouse is not too much different from using other file
  267. requesters.   To  select  a  file, just click on it and press the 'Okay'
  268. gadget or just double click the file.  To avoid overwriting of important
  269. files, the double click feature is disabled in save mode.
  270.  
  271. Entering  a  directory  (or  a  device,  volume) is done by clicking and
  272. releasing  the  left  mouse  button  on  the  appropriate entry.  If you
  273. release the button somewhere else, nothing will happen.
  274.  
  275. The 'Parent' gadget (labeled '/') is located right of the drawer gadget.
  276. Since  this  place  is  sometimes  far away from the directory list, MFR
  277. offers another parent gadget.  It's located (invisible) between the left
  278. window  border  and the left side of the directory list and acts exactly
  279. like  the  '/'  gadget.   For  users  with a three button mouse, the mid
  280. button can also be used to access the parent directory.
  281.  
  282. When the application allows selection of multiple files, you can do this
  283. by  holding  down  the  <shift> key and clicking on the desired entries.
  284. You  can  also  hold  down  <shift> and move the mouse (with left button
  285. pressed)  around.   Note  that  you will have to hold shift even for the
  286. first  entry  you  select.  This is different from other file requesters
  287. behaviour  and  from workbench multi select, but it seems to be the only
  288. reasonable way for MFR.
  289.  
  290. Maybe you already noticed the '!' gadget near the file gadget.  This one
  291. will  cause  MFR to perform a so called file action on the current file.
  292. Refer to section 3.4.3.  for details.
  293.  
  294.  
  295.  
  296. 3.3. Keyboard Usage
  297. -------------------
  298.  
  299. Using MFR with the keyboard needs a little more explanation.  First some
  300. general things.
  301.  
  302. The  file gadget of MFR is connected with the directory list, the drawer
  303. gadget  is  connected  with  the  device  list.  So if you have e.g.  an
  304. active file gadget, you will also notice a cursor in the directory list.
  305. Try this by pressing <TAB> or <Shift><TAB> to cycle through the gadgets.
  306.  
  307. Tab  cycling is a little bit different from standard kick 2.x behaviour.
  308. Pressing  <TAB>  will  always  toggle  between  drawer  and file gadget,
  309. <Shift><TAB> will activate the pattern gadget (if visible).
  310.  
  311. The  list cursor always moves according to your actions in the connected
  312. string  gadget.   You should now try moving up and down in the directory
  313. list  with  the  cursor keys (and maybe with some qualifiers).  MFR will
  314. always  update the file gadget with the name of the entry under the list
  315. cursor.  So if you want to select a file, just move the cursor on top of
  316. it and press <Return>.  When the list cursor is placed over a directory,
  317. MFR  will  append a '/' to the directory's name before updating the file
  318. gadget.   Thus, pressing <Return> over a directory will simply enter it.
  319. The   shortcut  <Amiga><P>  is  used  to  change  to  parent  directory.
  320. Alternatively,  you  can use <Alt><Right> and <Alt><Left> to enter/leave
  321. directories.
  322.  
  323. The  same  procedure  applies  to  the device list.  Activate the drawer
  324. gadget,  select a device by moving the cursor and press <Return>.  Easy,
  325. isn't it?
  326.  
  327. Now  things get a little bit complicated, but more interesting.  Imagine
  328. you  have  a  directory  with  lots of files (e.g.  a directory with IFF
  329. graphics)  and  you  want  to load the file 'Stefan_With_Amiga.pic'.  Of
  330. course  you  could try to reach the file with your cursor keys, but this
  331. may  take  a while.  Just try typing a 'S' into the (empty) file gadget.
  332. You  will  notice  the  list  cursor  magically moving on the first file
  333. starting    with    the    letter    'S'.     This    could   e.g.    be
  334. 'Sabine_Without_Clothes.pic'.   Now  type a 't' and MFR will move to the
  335. first  entry  with  'St'  at  the  beginning, e.g.  'Stars&Stripes.pic'.
  336. After   typing   an   'e',   you   will   find  yourself  directly  over
  337. 'Stefan_With_Amiga.pic'.  Thus, you only needed three keystrokes instead
  338. of many cursor downs or mouse moving.  Due to MFR's auto completion, you
  339. will only have to press <Return> now to select this file.
  340.  
  341. Remember,  although  your  string  gadget  only contains 'Ste', MFR will
  342. return the full name 'Stefan_With_Amiga.pic' to the application.  If you
  343. don't like this auto complete feature, you can of course switch it off.
  344.  
  345. Now, type some filename into the file gadget that does not exist in your
  346. current  directory  (e.g.   'grmblwuz'),  or just clear the gadget.  You
  347. will  notice  the  list cursor changing from a bar to a rectangle.  This
  348. indicates, that no auto complete will take place when you type <Return>,
  349. the file will be returned without any changes.
  350.  
  351. Multi   selection   of   files  can  be  done  by  the  key  combination
  352. <Amiga><Space>.   This  toggles  the  selection state of the active file
  353. (the one under the list cursor).  Additionaly, <Amiga><Shift><Space> can
  354. be used to select/deselect the entire directory.
  355.  
  356. MFR  can  also  be controlled with the numeric keypad (if enabled).  Key
  357. '5' is for multiselection, the other keys work as expected.
  358.  
  359. Leaving  MFR  without selecting files can be done with the <Escape> key.
  360. This is equivalent to pressing the 'Cancel' gadget.
  361.  
  362.  
  363.  
  364. 3.4. Menus
  365. ----------
  366.  
  367. As  every  real  Amiga  program,  MFR offers a couple of pulldown menus.
  368. Here they are...
  369.  
  370.  
  371.  
  372. 3.4.1. Project Menu
  373. -------------------
  374.  
  375. - About
  376.  
  377. Display some information about program version, author and registration.
  378. When you register, your name will be displayed here.
  379.  
  380. - Statistics
  381.  
  382. Display statistics about all previous file requester calls.  Seems to be
  383. a  little  bit  senseless,  but  maybe  someone  is  interested  in this
  384. information.
  385.  
  386. - Flush Memory
  387.  
  388. Free  some  allocated memory.  With Workbench 2.1, this function will be
  389. called automatically when memory gets low.
  390.  
  391. - Okay
  392.  
  393. Simulate 'Okay' gadget.
  394.  
  395. - Cancel
  396.  
  397. Simulate 'Cancel' gadget.
  398.  
  399.  
  400.  
  401.  
  402. 3.4.2. Edit Menu
  403. ----------------
  404.  
  405. - Copy Path
  406.  
  407. Paste  complete  current  path (concatenated contents of drawer and file
  408. gadget) to clipboard.
  409.  
  410. - Copy File
  411.  
  412. Paste contents of file gadget to clipboard.
  413.  
  414. - Copy Dir
  415.  
  416. Paste contents of drawer gadget to clipboard.
  417.  
  418.  
  419.  
  420. 3.4.3. DOS Menu
  421. ---------------
  422.  
  423. - Parent Directory
  424.  
  425. Change  to  the  parent  directory.   MFR  will  display an error in its
  426. status line when there is no parent directory.
  427.  
  428. - Reload Directory
  429.  
  430. Load  and  display  the  current directory again.  This is useful if you
  431. turned of file notification for some reason and something in the current
  432. directory changed.
  433.  
  434. - Search File
  435.  
  436. MFR  has  the ability to search your harddisk for some files. Before you
  437. can  use this feature, you will have to create a data base consisting of
  438. all  your  directories  and  all  your files.  This can be done with the
  439. "UpdateDB" program from Larry Phillips "Find" package, which is included
  440. in MFR's distribution archive.  If you are not familiar with "UpdateDB",
  441. please  refer  to  Larry's  documentation  for  details.   Once you have
  442. created the data base, you can easily find any file you want.  Just type
  443. the  (partial)  name  (or pattern) into the string gadget and select the
  444. 'Search File' menu item.  MFR will list all occurances of the concerning
  445. file  together  with  the  complete  path in the file list.  Just double
  446. click  on the desired entry and you will be moved to its  directory with
  447. the appropriate information filled in the drawer and file gadgets.
  448.  
  449. - File Action
  450.  
  451. MFR  has the ability to show pictures, play sounds, view archives, etc..
  452. If  you  want  to use this feature, you will have to tell MFR what to do
  453. with  certain  file  types.   This  is  done  via  the CLASS_0 - CLASS_9
  454. tooltype entries.
  455.  
  456. The syntax of a CLASS entry looks like this:
  457.  
  458. CLASS_<n>=[<namepattern>],[<contentspattern>],<action>
  459.  
  460. If  you  select the "File Action" menu item or you press the file action
  461. gadget (labeled '!'), MFR checks the current file against <namepattern>.
  462. If  this one matches, MFR checks the first 256 Bytes of the file against
  463. <contentspattern>.   In case of match, the command <action> is performed
  464. on   this  file.   Note  that  <namepattern>  is  case  insensitive  but
  465. <contentspattern> is case sensitive.  An ommited pattern matches always.
  466.  
  467. The parameter <action> must be a valid command, exactly as if typed into
  468. a  CLI.   The first "%s" in <action> will be replaced with the full path
  469. specification  of the current file.  Note that formatting of the command
  470. is  done via sprintf(), so you should be careful not to use other printf
  471. style  formatting commands such as "%d" or "%x".  Your machine may crash
  472. if  you  do  so!   If you use commands that print to the current console
  473. (e.g.  all archivers), you must use IO-redirection.
  474.  
  475. Some examples for file classes are:
  476.  
  477. CLASS_0=#?.(lha|lzh),,lz >con:120/50/500/250/LH-Archive/CLOSE/WAIT v %s
  478. CLASS_1=#?.zoo,,zoo >con:120/50/500/250/Zoo-Archive/CLOSE/WAIT l %s
  479. CLASS_2=#?,FORM????ILBM#?,display %s
  480. CLASS_3=#?,FORM????8SVX#?,play %s
  481. CLASS_4=#?.doc,,more %s
  482.  
  483. - History List
  484.  
  485. With  'History List', you will get a list of the last files you selected
  486. with  MFR.  This can be useful if you want to load some files again.  If
  487. the  history  list  is  not empty, a window will pop up and allow you to
  488. select  one  entry.   Note  that the entries of the history list are not
  489. sorted,  the  last selected file always appears on top of the list.
  490.  
  491. - Make Directory
  492.  
  493. Create a new drawer in the current directory.
  494.  
  495. - Delete File/Dir
  496.  
  497. Delete a file or an empty directory in the current directory.  Note that
  498. MFR is no CLI tool, so you won't be able to delete non empty directories
  499. or write protected files.
  500.  
  501. - Rename File/Dir
  502.  
  503. Rename  a  file  or  a  drawer.   You  may move files out ot the current
  504. directory buy specifying a complete path for the new name.
  505.  
  506. * Status submenu
  507.  
  508. The  'Status'  submenu  is  used  to  control  some  status bits of MFR.
  509. Normally,  these  bits  are  set  to  reasonable  values  by the calling
  510. application, but you can override these settings at any time.  Note that
  511. none of these flags will be saved.
  512.  
  513. - Status / Display Pattern Gadget
  514.  
  515. Controls whether the pattern gadget is visible or not.
  516.  
  517. - Status / Disable Pattern
  518.  
  519. Controls  whether  the  pattern specified in the pattern gadget shall be
  520. used  to hide certain files.  This has nothing to do with the visibility
  521. of the gadget.
  522.  
  523. - Status / Hide Icons
  524.  
  525. Controls  whether  icons  (.info files) shall be displayed or not.  Even
  526. with  icon  display  enabled,  .info  files may be hidden by the pattern
  527. setting.
  528.  
  529. - Status / Match Directories
  530.  
  531. Controls whether directories must also match the specified pattern to be
  532. displayed.  This is not useful in general.
  533.  
  534.  
  535.  
  536. 3.4.4. Settings Menu
  537. --------------------
  538.  
  539. The  'Settings'  menu  contains some items to customize MFR according to
  540. your personal taste.  MFR's settings are global for all file requesters.
  541. If you e.g.  select a new font, all open requesters will be informed and
  542. updated.
  543.  
  544. Many  settings  can  hold two different values, according to the current
  545. screen  resolution.   For  example, changing the gadget font on a lowres
  546. screen  affects  the  lowres  setting,  changing  it on a highres screen
  547. affects the highres setting.  These menu items will be marked as [dual].
  548.  
  549. Low  resolutions displays are:  Lores, Hires, SuperHires, HAM, LoresDPF,
  550. LoresDPF2,  HiresDPF2,  SuperHiresDPF2,  ExtraHalfBrite,  VGAExtraLores,
  551. VGAHAM, VGAExtraLoresLace, VGALoresDPF, VGAExtraLoresDPF2, VGALoresDPF2,
  552. and  VGAExtraHalfBrite.   All  other  modes  will  be considered as high
  553. resolution.
  554.  
  555. * Window submenu
  556.  
  557. The  'Window'  submenu  is  used to control size, position and outfit of
  558. MFR's window.
  559.  
  560. - Window / Override Dimension
  561.  
  562. Normally,  the  dimensions of a file requester window will be set by the
  563. calling  program.  However, MFR seems to need more space than other file
  564. requester.   Thus,  it  may  be  a  good  idea  to  let MFR override the
  565. application's  size  suggestion  and use its  own one.  With this switch
  566. set, MFR will always use the configured size when opening its window.
  567.  
  568. - Window / Override Position
  569.  
  570. MFR  offers the ability to open its window either centered on the screen
  571. or  centered  under  the mouse pointer.  To use these features, you will
  572. have  to set this switch.  Without 'Override Position', MFR will use the
  573. application specified position.
  574.  
  575. - Window / Centered Window
  576.  
  577. MFR's  window  will  always appear centered on the (visible part of the)
  578. screen.
  579.  
  580. - Window / Moused Window
  581.  
  582. MFR's window will always appear under the mouse pointer.
  583.  
  584. - Window / Rastered Background [dual]
  585.  
  586. The  background  of MFR'S window will be rastered with the darkest color
  587. of  the current palette.  In save mode, background will be rastered with
  588. the two darkest colors.
  589.  
  590. - Window / Inverted Gadgets
  591.  
  592. Flip front and back pen of string gadgets.
  593.  
  594. - Window / Use as Default Dimension [dual]
  595.  
  596. Set MFR's default dimension to the current window size.
  597.  
  598. * Scrollbar submenu
  599.  
  600. MFR  offers  four  different scrollbar designs, each of them either with
  601. symmetrical or asymmetrical placement of arrow gadgets.
  602.  
  603. - Scrollbar / Default [dual]
  604.  
  605. Scrollbars look like standard Kick 2.x scrollbars on highres screens.
  606.  
  607. - Scrollbar / Default-Lores [dual]
  608.  
  609. Scrollbars look like standard Kick 2.x scrollbars on lowres screens.
  610.  
  611. - Scrollbar / Goonie [dual]
  612.  
  613. Scrollbars  and  arrows  look  3-dimensional,  with a little knob in the
  614. middle.  Nice!
  615.  
  616. - Scrollbar / Stuntzi [dual]
  617.  
  618. Scrollbars use PROPNEWLOOK, looks a bit like workbench's scrollbars.
  619.  
  620. - Scrollbar / Symmetrical
  621.  
  622. Scrollbar uses symmetrical placement of arrow gadgets.
  623.  
  624. - Scrollbar / Set Arrow Delay...
  625.  
  626. Here,  you  can adjust the repeat rate for the scrollbars arrow gadgets.
  627. With a value of 0, MFR scrolls very fast.
  628.  
  629. * Font submenu
  630.  
  631. - Font / Select List Font... [dual]
  632.  
  633. A  font  requester  will  open up and let you specify the font to use in
  634. directory  and  device  list.  Proportional fonts are perfectly okay and
  635. recommended, since they allow displaying of longer filenames.  Suggested
  636. ist helvetica/11 on a highres display, but that depends on your taste.
  637.  
  638. - Font / Use Screen Font [dual]
  639.  
  640. With  this item enabled, MFR will always use the parent screen's default
  641. font for displaying its lists.
  642.  
  643. - Font / Select Gadget Font... [dual]
  644.  
  645. A  font  requester  will  open up and let you specify the font to use in
  646. MFR's  string  gadgets.   Proportional  fonts  are  perfectly  okay  and
  647. recommended, since they allow displaying of longer filenames.  Suggested
  648. ist helvetica/13 on a highres display, but that depends on your taste.
  649.  
  650. - Font / Use Screen Font [dual]
  651.  
  652. With  this item enabled, MFR will always use the parent screen's default
  653. font in its string gadgets.
  654.  
  655. * Sorting submenu
  656.  
  657. MFR is able to sort the directory list in many different ways.  The menu
  658. items should be self explaining, if not, just try them.
  659.  
  660. - Sorting / Sort by Name
  661. - Sorting / Sort by Date
  662. - Sorting / Sort by Size
  663. - Sorting / Dirs First
  664. - Sorting / Dirs Last
  665. - Sorting / Don't care
  666. - Sorting / Low to High
  667. - Sorting / High to Low
  668.  
  669. * DOS submenu
  670.  
  671. - DOS / Set Default Pattern...
  672.  
  673. When the calling application doesn't specify a pattern, MFR will use the
  674. configured  default  pattern as initial contents for the pattern gadget.
  675. For example ~(#?.info|#?.o|#?.bak) would be a good choice.
  676.  
  677. - DOS / Set Vol. Show Pattern...
  678. - DOS / Set Vol. Hide Pattern...
  679.  
  680. MFR  allows  you  to  specify which devices/volumes should appear in the
  681. device  list.   Just set some show and hide pattern to suite your needs.
  682. Example:  Show Pattern = (dh#?|df#?|ram#?)
  683.  
  684. - DOS / Set History Entries...
  685.  
  686. This sets the maximum number of entries in the history list.  A value of
  687. 0 disables the history feature completely, saving a bit of memory.
  688.  
  689. - DOS / Set Cache Entries...
  690.  
  691. MFR  remembers  up  to  100 directory contents, considerably speeding up
  692. operation.   With  this caching, you will be able to browse through your
  693. directory tree without delay.  A cache is automatically invalidated when
  694. the datestamp of the associated directory changes (this happens whenever
  695. files are changed within that directory).  With 'Set Cache Entries', you
  696. can  specify  the  maximum  number  of cached directories.  A value of 0
  697. disables  caching completely.  Note that this change will not affect the
  698. current  session.   You will have to save settings, exit MFR and restart
  699. it to see the difference.
  700.  
  701. In  case  of  memory  shortage, MFR will free its caches.  Therefore, it
  702. hooks   into  asl.library's  Expunge()  function.   Unfortunately,  this
  703. feature won't work with Workbench 2.0's asl library.  But when Workbench
  704. 2.1 becomes available, it will magically start working.
  705.  
  706. - DOS / Set Read Timeout...
  707.  
  708. With  'Read Timeout' it's possible to make MFR multitask while reading a
  709. directory.   By  default,  its value is set to zero.  In this mode,  MFR
  710. will  read  a directory completely before displaying anything and before
  711. reacting  to  user  actions.  This is the recommended mode, since it's a
  712. lot  less  confusing  and  since MFR's directory caching reduces waiting
  713. time to a minimum.  However, if you really want, you can set the timeout
  714. to  another value (timeout is measured in 1/50 seconds).  Then, MFR will
  715. update  its   display  every time the period expires or when you perform
  716. some  action  on  the  directory list (e.g.  cursor movement).  To avoid
  717. messing  up  the  display,  new entries will be appended unsorted at the
  718. bottom of the list.  As you probably noticed, I don't like this mode and
  719. it  surely  would  need  some  more testing and programming.  You really
  720. should use a timeout value of 0 for now.
  721.  
  722. - DOS / File Notification
  723.  
  724. 'File  Notification'  finally  toggles  MFR's file notification feature.
  725. With  file notification enabled, MFR automatically recognizes changes in
  726. the  displayed  directory and reloads it immediately.  Since this can be
  727. really confusing sometimes, you can switch it off here.
  728.  
  729. * Search submenu
  730.  
  731. This  submenu influences the way MFR compares a file with the entries of
  732. the  find  data base.  Note that when you specify an AmigaDOS pattern to
  733. search for, only the 'Case Sensitive' menu item will affect matching.
  734.  
  735. - Search / Case Sensitive
  736.  
  737. When this item is selected, matching will be case sensitive.
  738.  
  739. - Search / Match Exactly
  740.  
  741. The  file  must match the data base entry completely, e.g.  'mary' won't
  742. match 'primary' or 'marys_daughter'.
  743.  
  744. - Search / Match Beginning
  745.  
  746. All  data  base  entries  starting with the file gadget contents will be
  747. displayed.
  748.  
  749. - Search / Match Partial
  750.  
  751. If  the  data base entry contains the file gadget contents somewhere, it
  752. will match.
  753.  
  754. * Usage submenu
  755.  
  756. This  menu  contains various flags that control how MFR responds to user
  757. actions.
  758.  
  759. - Usage / Auto Complete Load
  760. - Usage / Auto Complete Save
  761.  
  762. A  file  requester  can  be in load or in save mode, as specified by the
  763. application.   MFR allows you to toggle its  auto completion feature for
  764. both  of  these modes.  Normally, 'Auto Complete Load' should be set and
  765. 'Auto Complete Save' should be unset, but this depends on your taste.
  766.  
  767. - Usage / Numeric Pad Control
  768.  
  769. Used to toggle cursor control via numeric keypad.
  770.  
  771. - Usage / Close after Copy
  772.  
  773. When  this  item  is  set, MFR's window will automatically close after a
  774. copy operation to clipboard.
  775.  
  776. - Load Settings
  777. - Save Settings
  778.  
  779. These  two  menu items (available only when you register), allow loading
  780. and  saving of MFR's settings.  MFR will automatically load the settings
  781. at  startup.  For that, it will try to locate its .info file and get the
  782. configuration  out  of the tooltypes.  If you start MFR from CLI and the
  783. .info  file  is  not  present,  MFR  will look for an 'envarc:mfr.prefs'
  784. config  file  and  take  its configuration from there.  In any case, MFR
  785. remembers  the  configuration's  place  and  saves it to the appropriate
  786. position when 'Save Settings' is selected.
  787.  
  788.  
  789.  
  790.  
  791. ========================================================================
  792.                               4. Specials
  793. ========================================================================
  794.  
  795.  
  796. 4.1. Tooltypes
  797. --------------
  798.  
  799. Most  of  MFR's  configuration  can  be  adjusted  with  the menu items.
  800. However,  there  are  some  things that haven't made their way to a menu
  801. yet, so you will need to adjust them via tooltypes.
  802.  
  803. CX_POPKEY
  804. defines  the  key sequence used to pop up a Magic File Requester.  Don't
  805. know  if it's really useful to pop up a file requester, but if you want,
  806. you can.
  807.  
  808. CX_PRIORITY
  809. defines  MFR's  priority  in  commodities  input  chain.   There  should
  810. normally be no reason to alter this value.
  811.  
  812. PATCHASL
  813. turns  the  patch for asl.library on and off.  There should be no reason
  814. to turn it off, I hope.
  815.  
  816. PATCHREQ
  817. does the same thing for req.library.
  818.  
  819. PATCHREQTL
  820. same for reqtools.library
  821.  
  822. MINPIXEL
  823. defines  the minimum space reserved to display a file name.  MFR adjusts
  824. the  amount  of  displayed  information  according  to the width of  its
  825. window.   Try  resizing  the window to see how it works.  MINPIXEL pixel
  826. will  always  be reserved to display the file name, unless the window is
  827. too small.
  828.  
  829. REJECT
  830. defines  a  case insensitive pattern for task names.  If you encounter a
  831. program  that  does  not work with MFR, you can make MFR drop to the old
  832. file requester when being called from this task.  Just find out the task
  833. name and add it to the REJECT pattern.  You can use the program TaskList
  834. (see Goodies section) to list all tasks currently running.
  835.  
  836. CLASS_0 - CLASS_9
  837. Here  you  can  configure  some  file classes for file actions.  See the
  838. description of the 'File Action' menu item for details.
  839.  
  840. FKEY_0 - FKEY_20
  841. MFR  lets  you define 20 directories for quick access with the functions
  842. keys.   You  can  specify a file name after the directory, in which case
  843. the file gadget will be filled with this name.  F-Keys 11 through 20 are
  844. the shifted F-Keys 1 through 10.
  845.  
  846. The  two tooltypes DONOTWAIT and STARTPRI are dedicated to workbench and
  847. should be left untouched, unless you know what you're doing.
  848.  
  849. All  other  tooltypes  are  maintained  with MFR's menu items.  There is
  850. absolutely no need to alter them by hand.
  851.  
  852.  
  853.  
  854. 4.2. CLI Interface
  855. ------------------
  856.  
  857. MFR  has  a  CLI  interface  that allows using the requester from within
  858. script files.  Calling MFR with the following template
  859.  
  860.   mfr [DIR=<dir>] [FILE=<file>] [PATTERN=<pattern>] [TITLE=<title>]
  861.       [OKTEXT=<oktext>] [CANCELTEXT=<canceltext>]
  862.       [LEFT=<left>] [TOP=<top>] [WIDTH=<width>] [HEIGHT=<height>]
  863.       [MULTI] [MATCHDIRS] [SAVE] [PATGAD]
  864.  
  865. will  pop  up a file requester, wait for the user to select some file(s)
  866. and  print  the  results  (full  path  specification) to stdout.  If the
  867. requester is cancelled, nothing is displayed.
  868.  
  869. You  can  use this feature from a shell or arexx script, redirecting the
  870. result to a file for further usage.  For example, the command
  871.  
  872.   mfr >env:result DIR=cap: PATTERN=*.cap TITLE="Select a capture file"
  873.  
  874. will create an environment variable named 'result' which consists of the
  875. selected file.  If you don't select a file, 'result' will be empty.
  876.  
  877. MFR  will  return  0  if  a  file  was  selected, 5 if the requester was
  878. cancelled.   A  return  code of 10 indicates an error (wrong parameters,
  879. out of memory, ...).
  880.  
  881. Note that MFR will internally call the asl.library file requester, so if
  882. you  didn't  allow  it  to  patch this library, you will just see an ASL
  883. requester popping up.
  884.  
  885.  
  886.  
  887.  
  888. ========================================================================
  889.                                5. Goodies
  890. ========================================================================
  891.  
  892.  
  893. 5.1. UnArp
  894. ----------
  895.  
  896. UnArp  is  a  tool by Martin Berndt, that tries to make arp.library more
  897. compatible  to  Kickstart  2.0.  Many ARP calls are replaced by calls to
  898. dos.library, the file requester is replaced by an ASL requester.  If you
  899. put it somewhere in your startup-sequence or user-startup, you'll notice
  900. MFR replacing all your old ARP file requesters.
  901.  
  902.  
  903.  
  904. 5.2. TagScreens
  905. ---------------
  906.  
  907. With  Kick  2.04, there is a new method for programmers to specify which
  908. colors  should  be  used for gadget and window rendering on their custom
  909. screen.  MFR uses exactly this colors in its window.
  910.  
  911. Programs  that  were developed before Kick 2.04 was released, don't know
  912. about  this feature.  Their windows and gadgets, including MFR will look
  913. a little bit ugly.
  914.  
  915. "TagScreens"  from  Martin  Berndt  tries  to patch the old OpenScreen()
  916. function  to  make  these  old  programs  use the new 3d look.  Refer to
  917. "TagScreens.txt" for details.
  918.  
  919.  
  920.  
  921. 5.3. Find
  922. ---------
  923.  
  924. "Find" is a tool for fast file searching, written by Larry Phillips.  It
  925. works  in  conjunction  with a data base, including all your directories
  926. and files.  MFR needs this data base for its search functions.  Refer to
  927. "Find.DOC" for details.
  928.  
  929.  
  930.  
  931. 5.4. TaskList
  932. -------------
  933.  
  934. MFR  has the ability to prevent some specific tasks from using it.  This
  935. is  hopeful  if you e.g.  encounter a program that doesn't work with MFR
  936. or needs some special features of asl.library, not supported by MFR yet.
  937.  
  938. When  a  file  requester  is  called,  MFR compares the specified REJECT
  939. pattern   with  the  name  of  the  calling  task  (ExecBase->ThisTask->
  940. tc_Node.ln_Name).  In case of match, MFR will call the old requester.
  941.  
  942. To  find  out the name of the calling task, you can use a system monitor
  943. such  as  "ARTM"  or "XOper" or the supplied utility TaskList.  TaskList
  944. exactly  displays  the  task  name,  checked by MFR.  "ARTM" and "XOper"
  945. display some other things sometimes.
  946.  
  947. Finding  out  the calling task's name may sometimes get a little tricky.
  948. The  normal  task name of "MultiPlayer" is e.g.  "MultiPlayer", but this
  949. program  creates  a  second  task  named "File Requester" to call a file
  950. requester.  To prevent "MultiPlayer" from calling MFR, you would have to
  951. specify "REJECT=File Requester".
  952.  
  953.  
  954.  
  955.  
  956. ========================================================================
  957.                              6. Discussion
  958. ========================================================================
  959.  
  960.  
  961. This   section   is  intended  to  avoid  unnecessary  bug  reports  and
  962. suggestions.  Please read this before you write a mail.  But if you have
  963. additional ideas, bug reports or just some comments, write me.
  964.  
  965.  
  966. 6.1. Known Bugs
  967. ---------------
  968.  
  969. - MFR won't hide its file gadget in a directory only requester.  This does
  970.   not affect functionality.
  971.  
  972. - Still some missing ASL Tags.  Since they are not too important, MFR will
  973.   never drop to an ASL requester.
  974.  
  975.     ASLFR_Screen           /* Address of parent screen       */
  976.     ASLFR_PubScreenName    /* Name of public screen          */
  977.     ASLFR_Locale           /* Locale ASL should use for text */
  978.     ASLFR_RejectPattern    /* preparsed reject pattern       */
  979.     ASLFR_AcceptPattern    /* preparsed accept pattern       */
  980.     ASLFR_TextAttr         /* Font to use for requester      */
  981.  
  982. - Missing reqtools tags:
  983.  
  984.     RT_IDCMPFlags
  985.     RT_ReqPos
  986.     RT_PubScrName
  987.     RT_Screen
  988.     RT_ReqHandler
  989.     RT_DefaultFont
  990.     RT_ScreenToFront
  991.     RT_UnderScore
  992.     RT_TextAttr
  993.     RT_IntuiMsgFunc
  994.     RT_Locale
  995.     RTFI_AddEntry
  996.     RTFI_RemoveEntry
  997.     RTFI_FilterFunc
  998.     RTFI_AllowEmpty
  999.     Flags: FREQF_NOBUFFER, FREQF_SELECTDIRS, FREQF_DOWILDFUNC
  1000.  
  1001.     RTFI_VolumeRequest
  1002.  
  1003.     /* This one's making trouble. Why didn't Nico add an extra
  1004.        function rtVolumeRequest() instead of this strange tag?
  1005.        MFR will try to drop to reqtools, but this may be
  1006.        dangerous in some cases. */
  1007.  
  1008. - MFR is not totally clean against specifiying a too big font.  You should
  1009.   be careful experimenting with euro/90 or something like that.
  1010.  
  1011. - Not really a bug of MFR.  MFR will not work with programs that depend on
  1012.   some   undocumented   features   of  asl.library,  such  as  remembering
  1013.   application's A4 register for callback hooks.  Currently, I only know of
  1014.   VLT 5.517 depending on such strange things.  As a result, VLT will crash
  1015.   the  machine  when calling a font requester with MFR installed.  I tried
  1016.   to convince VLTs author not to rely on undocumented features, but had no
  1017.   success. Sorry to all VLT users.
  1018.  
  1019.  
  1020.  
  1021. 6.2. Compatibility
  1022. ------------------
  1023.  
  1024. I  tried  hard to make MFR as compatible as possible.  However, patching
  1025. libraries  has  always  been  and will always be a little bit dangerous.
  1026. You  should  assure  that no other programs patch file requester library
  1027. vectors  when  MFR runs.  If you e.g.  use 'ReqChange' (V1.09, by Magnus
  1028. Holmgren)  to forward some string/number requesters to reqtools.library,
  1029. you should specify "reqchange NOASL NOARP" to start it.  In general, MFR
  1030. should  be  the  last  started requester patch tool.  To accomplish that
  1031. with 'WBStartup/' files, you can e.g. use the STARTPRI tooltype.
  1032.  
  1033.  
  1034.  
  1035. 6.3. Future Features
  1036. --------------------
  1037.  
  1038. Here are some plans for future expansion of MFR.  Comments and additions
  1039. welcome.
  1040.  
  1041. - A  hotkey  to  paste MFR's gadgets contents to the input stream would be
  1042.   nice.
  1043.  
  1044. - Drawing of the rastered background could be optimized.
  1045.  
  1046. - Entries in the find list tend to become very long.  Since the right part
  1047.   of a path is usually more interesting than the left part, I should maybe
  1048.   display it this way.
  1049.  
  1050. - Once  file  classes  are  supported by the system software, they will be
  1051.   taken out of MFR.  Hurry up, Commodore :)
  1052.  
  1053. - Localization. Ever wanted a norwegian file requester?
  1054.  
  1055. - Replacing  of some more libraries (arp, rct, kd_freq).  Well, UnArp does
  1056.   his job well, rct and kd_freq are rarely used...
  1057.  
  1058. - Better handling of the zoom gadget, including complete iconification and
  1059.   adjustable zoom size.
  1060.  
  1061. - Some more multi select hilight styles (italics, different colors, ...).
  1062.  
  1063. - ... to be continued ...
  1064.  
  1065.  
  1066.  
  1067. 6.4. Acknowledgements
  1068. ---------------------
  1069.  
  1070. Finally, I want to thank
  1071.  
  1072.  
  1073. Andreas Schildbach  for many good ideas, for debugging, for some artwork
  1074.                     and for the pacman. :-)
  1075.  
  1076. Stefan Becker       for debugging CLI interface and eliminating
  1077.                     some enforcer hits.
  1078.  
  1079. Martin Berndt       for debugging resolution detection and for the
  1080.                     permission to include his programs "TagScreens"
  1081.                     and "UnArp".
  1082.  
  1083. Stefan Hochmuth     for debugging memory allocation system.
  1084.  
  1085. Bryan Ford          for his startup code.
  1086.  
  1087. Michael Berger      for the set of Lores Icons.
  1088.  
  1089. Ralf Kemle &        for some more ideas and for testing MFR with
  1090. Oliver Kilian       good old 68000er.
  1091.  
  1092. Oliver Vaross       for additional debugging.
  1093.  
  1094. Larry Phillips      for his permission to include the "Find" package.
  1095.  
  1096. Colin Fox &         for req.library. I only need RealTimeScroll()
  1097. Bruce Dawson        but this one's really nice.
  1098.  
  1099. Maximilian Hantsch  for some useful code fragments and for their
  1100. & Martin Laubach    trapdoor license agreement. I cloned it nearly 1:1.
  1101.  
  1102. Stefan Boberg       for the LhA documentation. I cloned the part about
  1103.                     registration for MFR. Hope he doesn't mind.
  1104.  
  1105. ...                 and all the other guys and girls who reported bugs
  1106.                     and made suggestions.
  1107.  
  1108.  
  1109.  
  1110. 6.5. How to reach the author
  1111. ----------------------------
  1112.  
  1113. If you have some additional ideas and/or bug reports, feel free to send
  1114. a letter (e-mail preferred) or to give me a call.
  1115.  
  1116.  
  1117. You can reach me via
  1118.  
  1119.  
  1120.  Internet: stuntz@informatik.tu-muenchen.de
  1121.  
  1122.   Fidonet: 2:246/46.10 (Stefan Stuntz)
  1123.  
  1124.    Z-Netz: S.STUNTZ@AMC.ZER
  1125.  
  1126. SnailMail: Stefan Stuntz
  1127.            Eduard-Spranger-Straße 7
  1128.            D-W-8000 München 45
  1129.            Germany
  1130.            Phone: +49-(0)89-313-1248
  1131.  
  1132.  
  1133.  
  1134. That's all for now... Goodbye, and thanks for all the fish...
  1135.                                                                   Stefan
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.         Remember: Always expect the unexpected and don't panic :-)
  1178.         ----------------------------------------------------------
  1179.